package com.xydtech.ecard.ecard.mapper;

import com.xydtech.ecard.ecard.domain.EcardApiMerchantInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 电子名片商户信息Mapper接口
 *
 * @author yjs
 * @date 2023-07-25
 */
public interface EcardApiMerchantInfoMapper {
    /**
     * 查询电子名片商户信息
     *
     * @param id 电子名片商户信息主键
     * @return 电子名片商户信息
     */
    public EcardApiMerchantInfo selectEcardMerchantInfoById(Long id);
    /***
     * 查询电子名片商户信息
     * @param id
     * @param creatorId
     * @return: com.xydtech.ecard.ecard.domain.EcardApiMerchantInfo
     * @Author: lin
     * @Date: 2024/5/24 15:33
     */
    public EcardApiMerchantInfo selectEcardMerchantInfoByIdAndCreatorId(@Param("id") Long id,@Param("creatorId") Long creatorId);

    /**
     * 查询电子名片商户信息列表
     *
     * @param ecardMerchantInfo 电子名片商户信息
     * @return 电子名片商户信息集合
     */
    public List<EcardApiMerchantInfo> getMerchantList(EcardApiMerchantInfo ecardMerchantInfo);

    /**
     * 查询电子名片商户总数
     *
     * @author yjs
     * @date 2023/9/8 16:41
     */
    public Long getMerchantList_COUNT(EcardApiMerchantInfo ecardMerchantInfo);

    /**
     * 查询电子名片我的商户信息列表
     *
     * @param ecardMerchantInfo 电子名片商户信息
     * @return 电子名片商户信息集合
     */
    public List<EcardApiMerchantInfo> getMyMerchantInfoList(EcardApiMerchantInfo ecardMerchantInfo);

    /**
     * 查询电子名片我的商户总数分页用
     *
     * @author yjs
     * @date 2023/9/8 16:41
     */
    public Long getMyMerchantInfoList_COUNT(EcardApiMerchantInfo ecardMerchantInfo);

    /**
     * 保存电子名片商户信息
     *
     * @param ecardMerchantInfo 电子名片商户信息
     * @return 结果
     */
    public int addMerchantInfo(EcardApiMerchantInfo ecardMerchantInfo);

    /**
     * 唯一值验证,相同行业、支行、门头名不能重复
     *
     * @author yjs
     * @date 2023/7/26 14:26
     */
    public int validateMerchantInfo(EcardApiMerchantInfo ecardMerchantInfo);

    /**
     * 根据ID修改商户状态
     *
     * @author yjs
     * @date 2023/7/27 10:35
     */
    public int changeMerchantStatus(Long id);

    /**
     * 查询地图坐标列表
     *
     * @author yjs
     * @date 2023/7/27 16:21
     */
    public List<EcardApiMerchantInfo> getMerchantCoordinateList(@Param("creatorId") Long creatorId, @Param("deptId") Long deptId, @Param("industry") Integer industry);

    /**
     * 根据法人机构ID查询机构下所有商户坐标信息列表
     *
     * @author yjs
     * @date 2023/8/1 14:18
     */
    public List<EcardApiMerchantInfo> getAllMerchantCoordinateList(@Param("creatorId") Long creatorId, @Param("deptId") Long deptId, @Param("industry") Integer industry);

    /**
     * 变更商户归属客户经理
     *
     * @author yjs
     * @date 2023/7/28 14:48
     */
    public int updateMerchantUserId(@Param("id") Long id, @Param("creatorId") Long creatorId, @Param("deptId") Long deptId);

    /**
     * 查询个人/商户/企业/新型农业主体网格任务总条数接口
     * @param registId
     * @return
     */
    int getMerchantTaskTotalNum(@Param("registId") Long registId);

    /**
     * 分词查询商户/企业/新型农业主体信息
     *
     * @param licenseName
     * @param merchantType
     * @return
     */
    List<EcardApiMerchantInfo> selectParticipleEcardMerchantInfo(@Param("licenseName") String licenseName,
                                                                 @Param("merchantType") String merchantType,
                                                                 @Param("deptId") Long deptId);
}
